package com.example.blog.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.example.blog.entity.Admin;
import com.example.blog.entity.AdminActionLog;

public interface AdminService {
    /**
     * 管理员登录
     */
    Map<String, Object> login(String loginName, String password);
    
    /**
     * 新增管理员
     */
    Map<String, Object> addAdmin(Admin admin);
    
    /**
     * 根据ID获取管理员
     */
    Admin getAdminById(Integer adminId);
    
    /**
     * 根据登录名获取管理员
     */
    Admin getAdminByLoginName(String loginName);
    
    /**
     * 获取所有管理员
     */
    List<Admin> getAllAdmins();
    
    /**
     * 更新管理员信息
     */
    boolean updateAdmin(Admin admin);
    
    /**
     * 启用/禁用管理员
     */
    boolean updateAdminStatus(Integer adminId, Boolean isDisabled);
    
    /**
     * 删除管理员
     */
    boolean deleteAdmin(Integer adminId);
    
    /**
     * 添加管理员操作日志
     */
    boolean addActionLog(AdminActionLog log);
    
    /**
     * 获取管理员操作日志
     */
    List<AdminActionLog> getActionLogs();
    
    /**
     * 获取管理员的操作日志
     */
    List<AdminActionLog> getActionLogsByAdminId(Integer adminId);
    
    /**
     * 获取针对用户的操作日志
     */
    List<AdminActionLog> getActionLogsByUserId(Integer userId);
    
    /**
     * 获取指定类型的操作日志
     */
    List<AdminActionLog> getActionLogsByType(String actionType);
    
    /**
     * 获取时间范围内的操作日志
     */
    List<AdminActionLog> getActionLogsByTimeRange(Date startTime, Date endTime);
} 